<template>
	<div>
		<el-divider />
		<strong>字符函数</strong>
		<p style="text-indent: 2em;">主要提供字符串工具函数类utils。</p>
		<el-descriptions border :column="1">
			<el-descriptions-item v-for="(item, index) in utils" :key="index" label="*">
				<div><span class="color-primary">utils.</span><span class="color-warning">{{item.name}}</span></div>
				<div>{{item.desc}}</div>
			</el-descriptions-item>
		</el-descriptions>
	</div>
</template>
<script lang="ts">
import { toRefs, reactive } from 'vue';
export default {
	name: 'cms/help/utils',
	components: { },
	setup() {
		const state = reactive({
			utils: [{
				name: 'isArray​(Object object)',
				desc: '判断一个对象是否是数组类型， true or false'
			},{
				name: 'isEmpty​(Object object)',
				desc: '判断一个对象是否为空，object可以是String，Array，Map， true or false'
			},{
				name: 'isNotEmpty​(Object object)',
				desc: '判断一个对象是否为非空，object可以是String，Array，Map， true or false'
			},{
				name: 'isNull​(Object object)',
				desc: '判断一个对象是否为空定义， true or false'
			},{
				name: 'isNotNull​(Object object)',
				desc: '判断一个对象是否非空定义， true or false'
			},{
				name: 'maskingStrData​(String data, int begin, int end)',
				desc: '数据字符串脱敏显示前{begin}位和后{end}位，其它隐藏，用星号代替<例子:180****1234>'
			},{
				name: 'substring​(String str, int start)',
				desc: '截取字符串，start ~ str.length'
			},{
				name: 'substring​(String str, int start, int end)',
				desc: '截取字符串，start ~ end | str.length 当str.length <= end 时'
			},{
				name: 'trim​(String str)',
				desc: '去除字符串左右空格'
			},{
				name: 'explainExpression​(String text, Map<String,​Object> variables)',
				desc: `获取表达式解析 
						例：您的验证码是：\${code}，\${time}分钟内有效。
						参数值：variables = { "code" : 12345, "time" : 5 }
						结果：您的验证码是：12345，5分钟内有效。`
			},{
				name: 'format​(String template, Object... params)',
				desc: `格式化文本, {} 表示占位符
						此方法只是简单将占位符 {} 按照顺序替换为参数
						如果想输出 {} 使用 \\转义 { 即可，如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
						例：
						1、通常使用：format("this is {} for {}", "a", "b") > this is a for b
						2、转义{}： format("this is \\{} for {}", "a", "b") > this is \{} for a
						3、转义\： format("this is \\\\{} for {}", "a", "b") > this is \a for b`
			},{
				name: 'contains​(String str, String search)',
				desc: `是否包含字符串 true or false `
			},{
				name: 'containsIgnoreCase​(String str, String search)',
				desc: `是否包含字符串忽略大小写区别 true or false`
			},{
				name: 'endsWith​(String str, String suffix)',
				desc: `是否包以{suffix}结尾的字符串 true or false`
			},{
				name: 'endsWithIgnoreCase​(String str, String suffix)',
				desc: `是否包以{suffix}结尾的字符串忽略大小写区别 true or false`
			},{
				name: 'equals​(String str1, String str2)',
				desc: `{str1}和{str2}字符串是否相等 true or false`
			},{
				name: 'equalsAnyIgnoreCase​(String str1, String str2)',
				desc: `{str1}和{str2}字符串是否相等忽略大小写区别 true or false`
			},{
				name: 'indexOf​(String str, String search)',
				desc: `查找{search}字符串在字符串{str}中第一次出现的位置 index=-1 未匹配到`
			},{
				name: 'indexOfIgnoreCase​(String str, String search)',
				desc: `查找{search}字符串在字符串{str}中第一次出现的位置忽略大小写区别 index=-1 未匹配到`
			},{
				name: 'lastIndexOf​(String str, String search)',
				desc: `查找{search}字符串在字符串{str}中最后一次出现的位置 index=-1 未匹配到`
			},{
				name: 'lastIndexOfIgnoreCase​(String str, String search)',
				desc: `查找{search}字符串在字符串{str}中最后一次出现的位置忽略大小写区别 index=-1 未匹配到`
			},{
				name: 'join​(Array[] array, Char char)',
				desc: `数组转成按字符串{char}隔离 utils.join([1, 2, 3], ';')  = 1;2;3`
			},{
				name: 'remove​(String str, String remove)',
				desc: `删除字符串中的{remove}字符`
			},{
				name: 'removeIgnoreCase​(String str, String remove)',
				desc: `删除字符串中的{remove}字符忽略大小写区别`
			},{
				name: 'replace​(String str, String search, String replace)',
				desc: `替换{str}字符串中{search}字符为{replace}字符`
			},{
				name: 'replaceIgnoreCase​(String str, String search, String replace)',
				desc: `替换{str}字符串中{search}字符为{replace}字符符忽略大小写区别`
			},{
				name: 'split​(String str, Char char)',
				desc: `按{char}分割字符串{str} Array`
			},{
				name: 'lowerCase​(String str)',
				desc: `将字符串全部转成小写`
			},{
				name: 'upperCase​(String str)',
				desc: `将字符串全部转成大写`
			},{
				name: 'length​(String str)',
				desc: `计算字符串字节符长度`
			},{
				name: 'abbreviate​(String str, int length)',
				desc: `处理指定字符长度，超过长度{length}的字符用省略号代替，例：utils.abbreviate("abcdefg", 6) = "abc..."`
			}]
		});
		
		return {
			...toRefs(state),
		};
	}
}
</script>


